//    std::vector< std::pair<std::string, std::function<void(GuiTree::TreeStruct)> > > menu;
//    std::function<void(GuiTree::TreeStruct)> func =  [&](GuiTree::TreeStruct tree) {
////        PringtTest(tree);
//    };
//
//        menu.push_back(pair11);
//    menu.push_back(pair12);
//    menu.push_back(separator);
//
//    AddMenuAction(BaseCommon::DataType::ProjectManagement, menu);


#include <QObject>
#include <map>
#include <QMenu>

enum class DataType
{
    ProjectManager,
    Project,
    Material,

};
// project_manager_menu.h
class ProjectManagerMenu : public QObject
{
    Q_OBJECT
public:
    static ProjectManagerMenu& GetIns();
    void Init();
    void GetAutoMenu(int parentId, DataType type, QMenu &menu);
//    void AddFunc(std::vector< std::vector<DataType, )

private:
    void InitProject();
    void InitMaterial();
    ProjectManagerMenu() { };


    void Separator(const QString &name, int projectId);
    // 将菜单装载进去
    // 定义一个函数类型
    using MyFunctionType = std::function<void(const QString&, int)>;

    std::map< DataType, std::vector< std::pair<std::string, MyFunctionType>> > funcMap_;
};